package main

import (
	"fmt"
	"net/http"
	"os"

	"github.com/gin-gonic/gin"
)

// idea
/*
想用go语言开发一个app
添加一个名称设置，区分发送的设备；添加一个时间功能
vue写出来一个html的web客户端 不用vue了我正在用react在写
问一下小伙伴们开源的时候用什么协议比较好
我只想开源核心，也就是这个go程序
*/

func init() {
	fmt.Println("野草集团开源项目之一---局域网文本共享")
	网络接口初始化函数()

}

var staticdir = "./static"
var router = gin.Default()

func 网络接口初始化函数() {
	router.Static("/assets", staticdir)
	router.StaticFile("/", "./index.html")
	router.GET("/i", func(c *gin.Context) {
		c.String(http.StatusOK, "hello world")
	})

	router.POST("/post", func(c *gin.Context) {

		//id := c.Query("id")
		//page := c.DefaultQuery("page", "0")
		//name := c.PostForm("name")
		message := c.PostForm("message")
		文本控制台打印公共函数(message)
		文件写入(message)
		//fmt.Printf("id: %s; page: %s; name: %s; message: %s", id, page, name, message)
	})

}

func 网络接口启动函数一定要放在最后会阻塞进程() {
	err := router.Run(":8080")
	错误检验公共函数(err)
}

func 文件操作检验公共函数(err any) {
	if err != nil {
		fmt.Println(err)
		return
	}
}

// 由已有文件衍生出来，不破坏已有功能
func 错误检验公共函数(err any) {
	文件操作检验公共函数(err)
}
func 文本控制台打印公共函数(需要打印的参数 any) {
	fmt.Println(需要打印的参数)
}
func 文件写入(text string) {
	file, err := os.OpenFile(staticdir+"/共享的文本保存位置.txt", os.O_CREATE|os.O_APPEND, 0666)
	文件操作检验公共函数(err)
	defer file.Close()
	count, err1 := file.WriteString(text + "\n\n")
	//fmt.Println(count)
	文本控制台打印公共函数(count)
	//文本控制台打印公共函数(err1)
	文件操作检验公共函数(err1)
}
func main() {
	文本控制台打印公共函数("主程序入口----")
	文本控制台打印公共函数("即将进行程序自检----")

	文件写入("二狗")
	网络接口启动函数一定要放在最后会阻塞进程()

}
